package com.zsc.common.web.thread;

import com.zsc.common.web.handler.ServiceHandler;
import org.apache.log4j.Logger;

/**
 * SingleServiceThread.java是互动平台的处理业务线程类，用于一次性执行需要单线程运行的业务。
 *
 * @author jason
 * @version 1.0 2017年3月19日
 */
public class SingleServiceThread extends Thread {

    /**
     * 日志器
     */
    private static final Logger logger = Logger.getLogger(SingleServiceThread.class);

    /**
     * 业务处理器对象
     */
    private ServiceHandler serviceHandler = null;

    /**
     * 构造行数，设置线程名称和业务处理器。
     *
     * @param name           线程名称
     * @param serviceHandler 业务处理器
     */
    public SingleServiceThread(String name, ServiceHandler serviceHandler) {
        super(name);
        this.serviceHandler = serviceHandler;
    }

    /*
     * (non-Javadoc)
     *
     * @see java.lang.Thread#run()
     */
    @Override
    public void run() {
        try {
            serviceHandler.service();
        } catch (Throwable e) {
            logger.error("运行处理" + serviceHandler.name() + "业务的时候发生异常！", e);
        }
    }
}
